package com.lianqi.emcpframework.dataaccess;

import java.io.Serializable;
import java.util.Set;

/**
 * @program emcp-framework
 * @ClassName DataAccess
 * @description: 数据权限控制
 * @author: sky
 * @create: 2018/11/27 22:56
 */
public interface DataAccess extends Serializable{


    /**
     * 操作对象
     * @return 操作对象
     */
    String getDomain();

    /**
     * 对数据的操作事件
     *
     * @return 操作事件
     * @see OperationType#create
     * @see OperationType#delete
     * @see OperationType#update
     * @see OperationType#query
     * @see OperationType#view
     */
    Set<String> getActions();


    /**
     * 集合限定方式
     * @return 限定方式
     * @see SetScope
     */
    String getSetFilterType();

    /**
     * 字段限定方式
     *
     * @return 限定方式
     * @see FieldFilterType
     */
    String getFieldFilterType();

    /**
     * 数据范围限定
     * @return
     */
    Set<String> getSetScope();

    /**
     * 字段限定
     * @return
     */
    Set<String> getFilterFields();


}
